Efficient temporary dynamic anchor points within and between application document(s)

ABSTRACT

Navigating within a document to a specific cursor location within an open document which a user has marked with a temporary anchor point by receiving a retrieval keystroke within the document from the user; verifying the retrieval keystroke relates to a temporary anchor point; and based on the verified retrieval keystroke, a computer moving a cursor to the location within the document at which the temporary anchor point associated with the verified retrieval keystroke is located, without additional user interaction with the open document.

BACKGROUND

The present invention relates to establishing temporary anchor points,and more specifically to temporary, dynamic anchor points within andbetween documents.

Devices, such as mobile devices, have small screens which can makeediting, navigating, and reading a large document difficult. It would bebeneficial for a user to be able to quickly navigate between sections oflarge document as well as sections of multiple documents to quicklylocate specific sections without having to scroll through the entiredocument.

SUMMARY

According to another embodiment of the present invention, a computerprogram product for navigating within multiple documents which are openin multiple open programs on a computer is disclosed. The computercomprising at least one processor, one or more memories, one or morecomputer readable storage media, the computer program product comprisinga computer readable storage medium having program instructions embodiedtherewith. The program instructions executable by the computer toperform a method comprising: receiving, by a controlling application ofthe computer, temporary anchor points set by a user in the multipledocuments open in the multiple open programs without additional userinteraction with the programs; receiving, by the controlling applicationof the computer, a request from the user comprising a keystroke;identifying, by the controlling application of the computer, thekeystroke, an association of the keystroke with an open program of themultiple open programs, and a temporary anchor point previously set bythe user within a document open in the open program which was associatedwith the keystroke; and sending, by the controlling application of thecomputer, a request to the open program which is associated with thekeystroke, to cause the open program to move a cursor to the temporaryanchor point within the open document in the open program.

According to another embodiment of the present invention, a computersystem for navigating within multiple documents which are open inmultiple open programs on a computer is disclosed. The computercomprising at least one processor, one or more memories, one or morecomputer readable storage media having program instructions executableby the computer to perform the program instructions. The programinstructions comprising: receiving, by a controlling application of thecomputer, temporary anchor points set by a user in the multipledocuments open in the multiple open programs without additional userinteraction with the programs; receiving, by the controlling applicationof the computer, a request from the user comprising a keystroke;identifying, by the controlling application of the computer, thekeystroke, an association of the keystroke with an open program of themultiple open programs, and a temporary anchor point previously set bythe user within a document open in the open program which was associatedwith the keystroke; and sending, by the controlling application of thecomputer, a request to the open program which is associated with thekeystroke, to cause the open program to move a cursor to the temporaryanchor point within the open document in the open program.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts an exemplary diagram of a possible data processingenvironment in which illustrative embodiments may be implemented.

FIG. 2 shows a flow diagram of a method of using temporary dynamicanchor points within a document or between multiple documents.

FIG. 3 shows an example of using anchor points within two documents.

FIG. 4 shows a flow diagram of a method of using temporary dynamicanchor points within multiple documents through an application.

FIG. 5 illustrates internal and external components of a device computerand a server computer in which illustrative embodiments may beimplemented.

DETAILED DESCRIPTION

In an embodiment of the present invention, the temporary anchor pointsmay be invoked by a user who is editing or reading the document viakeystrokes or comparable actions. The anchor points are accessible fromanywhere within the document or file by using a key combination and/orfile menu. The anchor points allow fast jumping between documents orpreviously marked locations based on cursor location. It should be notedthat the anchor points are temporary and are only present for a session,which is the time the document is open within an application until theapplication ceases to run, after which the anchor point is removed fromthe memory of the application. The documents may include, but are notlimited to, word processing documents, spreadsheets, and/or binarydocument formats. The methods of the present invention may be used withmobile devices, other standard screen devices or multiple screens.

In another embodiment, multiple documents open in the same or indifferent applications may have anchor points set by a user. A centralapplication may keep track of the anchor points and have access to arepository with defined keystrokes associated with anchor points and/orusers. The anchor points allow a user to navigate quickly betweenspecific portions of each of the documents in the multiple applicationswithout having to scroll, use page up, page down commands or a filemenu.

It should be noted that since the present invention uses applicationprogram interfaces (API) and applications or programs which supportmultiple documents open at a time and functionality which allowsswitching between windows. The application or a controlling programrecognizes a request for an anchor point and tracks the anchor pointscurrently stored and passes the location of the anchor points via theAPI to the requested document's related application to bring the cursorto the specific document and position.

FIG. 1 is an exemplary diagram of a possible data processing environmentprovided in which illustrative embodiments may be implemented. It shouldbe appreciated that FIG. 1 is only exemplary and is not intended toassert or imply any limitation with regard to the environments in whichdifferent embodiments may be implemented. Many modifications to thedepicted environments may be made.

Referring to FIG. 1, network data processing system 51 is a network ofcomputers in which illustrative embodiments may be implemented. Networkdata processing system 51 contains network 50, which is the medium usedto provide communication links between various devices and computersconnected together within network data processing system 51. Network 50may include connections, such as wire, wireless communication links, orfiber optic cables.

In the depicted example, device computer 52, a repository 53, and aserver computer 54 connect to network 50. In other exemplaryembodiments, network data processing system 51 may include additionalclient or device computers, storage devices or repositories, servercomputers, and other devices not shown.

The device computer 52 may contain an interface 55, which may acceptcommands and data entry from a user. The commands may be regardingtemporary dynamic anchor points within a document or multiple documents.The interface can be, for example, a command line interface, a graphicaluser interface (GUI), a natural user interface (NUI) or a touch userinterface (TUI). The device computer 52 preferably includes an anchorpoint program 66. While not shown, it may be desirable to have theanchor point program 66 be present on the server computer 54. The devicecomputer 52 includes a set of internal components 800 a and a set ofexternal components 900 a, further illustrated in FIG. 5.

Server computer 54 includes a set of internal components 800 b and a setof external components 900 b illustrated in FIG. 5. In the depictedexample, server computer 54 provides information, such as boot files,operating system images, and applications to the device computer 52.Server computer 54 can compute the information locally or extract theinformation from other computers on network 50. The server computer 54may contain the anchor point program 66.

FIG. 2 shows a flow diagram of a method of using temporary dynamicanchor points within a document.

In this embodiment, the anchor point or bookmark is dynamic andtemporary and allows for navigation between cursor locations in multipledocuments. The dynamic anchor point is used by a user while the documentis open and is removed or forgotten once the application in whichdocument is being displayed has been closed or completely exited. Theanchor points are not application specific and may be used with wordprocessing, spreadsheets, binary formatted applications or otherdocuments. While one anchor point is discussed, multiple anchor pointsmay be saved or set during a session by the user. The anchor point, onceset, is accessible anywhere in the document through a specific keystrokeor gestures or input established by the user. This embodiment allowsfast jumping back to a temporary, previously marked location within asingle document based on the cursor location. The anchor points may beestablished and used during editing of a document.

Specific keystrokes may be set as default to a particular set ofkeystrokes to allow up to n anchor points to be stored and referenced.For example, Using a selected keystroke combination ofCTRL+ALT+SHIFT+<n> where n=1-0, as an example, CTRL+ALT+SHIFT+<n> couldbe set to mark/re-mark a current cursor location and then CTRL+ALT+<n>(same number and similar combination, but without SHIFT) may be used toactivate and go to the prior saved anchor point.

For example, CTRL+ALT+SHIFT+1 sets/resets cursor location 1 andCTRL+ALT+1 activates and moves to previously selected location 1 whetherthe user is in the same document.

In a first step, a keystroke is received within a program (step 102),for example by an anchor point program 66. The keystroke may be acombination of keys or a combination of gestures or other input from auser. Furthermore, while the functions keys from the keyboard may beused, gestures drawn on the screen, using menu actions, using physicalbuttons or other actions may also be used.

The keystroke is verified (step 104), for example by the anchor pointprogram 66. The verification may be accomplished by comparing thereceived keystroke to a defined keystroke associated with a user, storedin a repository, for example repository 53. The verification determineswhether the keystroke is a retrieval keystroke or a set keystroke.

For example, a keystroke of F1+Y may indicate that the current locationof the cursor within a document is to be saved or set as an anchorpoint, where a keystroke of F2+Q may indicate to move the cursor withina document to a saved location or anchor point or retrieve the anchorpoint within a document.

If the function of saving an anchor point is activated (step 106), forexample by a set keystroke, the anchor point program 66 saves thecurrent cursor location point as an anchor point (step 108) and themethod returns to step 102 of receiving a keystroke.

If a function of saving anchor points is not activated (step 106), and aretrieve anchor point is activated (step 110), based on the verifiedretrieve keystroke, an anchor point is retrieved and the cursor is movedto the anchor point within the document (step 112) and the methodreturns to step 102 of receiving a keystroke.

If the function of saving anchor points is not activated (step 106) andretrieving an anchor point is not activated (step 110), the methodreturns to step 104 of verifying a keystroke.

For example, a user may be editing a 200 page document and, on page 75,a user may need to edit a particular section of text. Instead ofscrolling up and down (or page up/page down) to find the informationthat is needed to view or copy/paste from another page in the documentand then manually scroll up/down back to page 75, the user would enter akeystroke, the keystroke would be verified a set keystroke to place ananchor point save point on page 75 where the edit needs to take place.The user can retrieve the information needed for the edit and then enterin a different keystroke, for example a retrieve keystroke to return topage 75 without scrolling up/down or page up/page down, allowing forquick and easy navigation within the document by the user.

In another example, editing a very large spreadsheet that consists for20+ sheets, each with 50+ columns and thousands of rows, different userswill have different needs. The different users can establish differentkey reference anchor points for themselves for that session that can bereset and changed on demand.

More specifically, when a user is editing a spreadsheet with 20 sheets,a user can use a set keystroke to place an anchor point at the currentlocation, for example on cell A25 on sheet 10, and then navigate toother sheets and retrieve/copy the needed data. For example, the usermay be present in cell F100 on sheet 18, and then enter a differentkeystroke to return to the anchor point in cell A25 and sheet 10immediately without having to navigate back through normal screenoptions.

In an alternate embodiment, anchor points are created by a user throughdefined hotkeys/gestures that can be reset as needed and utilized for acurrent session only. The anchor point allows for active switchingbetween specific points within an application or between applicationsthrough the use of API for that session and is implemented via anapplication and/or operating system service, which handles communicationbetween applications or within a single application. A controllingapplication, either as a standalone application or integrated into theoperating system, may be used to detect the activation of thehotkey/gesture and may then pass that request on to the appropriateapplication or program previously established. APIs may be used tohandle the communication between the applications within the controllingapplication or the operating system. It should be noted that thecontrolling application may store the location information regarding thetemporary anchor points in memory and the location within the memorywould be terminated when the application ceases to run. In oneembodiment, previously set anchors may be removed or cleared when adocument is closed, but the removal would still be a removal from thecontrolling application memory storage and would not be stored orremoved within the document being referenced.

FIG. 4 shows a flow diagram of a method of using temporary dynamicanchor points within multiple documents through an application.

It should be noted that prior to the method of FIG. 4, anchor pointswithin the multiple documents open by the user may be set using thesteps of FIG. 2.

Specific keystrokes may be set as default to a particular set ofkeystrokes to allow up to n anchor points to be stored and referenced.For example, Using a selected keystroke combination ofCTRL-ALT+SHIFT+<n> where n=1-0, as an example, CTRL-ALT+SHIFT+<n> couldbe set to mark/re-mark a current cursor location and then CTRL-ALT+<n>(same number and similar combination, but without SHIFT) may be used toactivate and go to the prior saved location (anchor point).

For example, CTRL+ALT+SHIFT+1 sets/resets cursor location 1 andCTRL+ALT+1 activates and moves to previously selected location 1 whetherthe user is in the same document or in multiple documents. In addition,the controlling application, may include a mechanism for modifyingdefault keystrokes.

In a first step, an anchor point program 66 listens for requests from auser (step 202). The anchor point program 66 may be a standalone programor part of an operating system.

If a request is not received (step 204), the method returns to step 202of listening for a request.

If a request is received (step 204), a keystroke is identified from therequest (step 206), for example by the anchor point program 66. Thekeystroke may be a retrieve keystroke or a set keystroke associated witha program. The keystroke may be a combination of keys such as a functionkey in addition to another key or a combination of gestures or otherinput from a user. Furthermore, while the functions keys from thekeyboard may be used, gestures drawn on the screen, using menu actions,using physical buttons or other actions may also be used.

Based on the keystroke received, the application in which the keystrokecorresponds is identified (step 208). The identification may beaccomplished by comparing the received keystroke to a defined keystrokeassociated with a user and designated to a specific application orprogram, stored in a repository, for example repository 53.

The anchor point program 66 sends a request via API to the identifiedapplication (step 210).

The cursor within the identified application is moved to an anchor pointor location associated with the request (step 212) and the methodreturns to step 202 of listening for requests.

The method may further include feedback to the user regarding the inputof the keystrokes.

Since the controlling application utilizes the API to communicate withthe applications in which documents may be open, there are circumstancesin which the application may not recognize the keystroke received viaAPI (e.g. if the user closed the document, modified the anchor point sothat the previously selected anchor point no longer exists, requests ananchor point not previously set, application is closed, application isunresponsive etc . . . ). If the keystroke is not recognized by theapplication, the controlling application cannot complete the request andfeedback regarding an indication of an error is provided to thecontrolling the application. The controlling application may send anotification to the user regarding why the requested action was notcompleted.

FIG. 3 shows an example of using anchor points within two documents. Afirst application 214 has a large spreadsheet open, for example 20+sheets, open on a mobile device. The user places a cursor at an anchorpoint 213 and provides a set keystroke or gesture to set the anchorpoint. The user opens a second application 216, for example an e-mail.While in the e-mail or second application 216, the user may use a secondkeystroke or gesture to set an anchor point 217 within the secondapplication 216, for example within the body of the text of an e-mail.The user may then enter a retrieve keystroke 218 to return to anestablished, temporary cursor location in a specific cell of thespreadsheet of the first application through identification of thekeystroke and API call methods. The user can copy the informationneeded, enter in another retrieve keystroke 220 to return to a cursorlocation within the body of the e-mail and paste in the information.Once the e-mail is sent and/or the spreadsheet or e-mail application areexited, the locations of the anchor points are terminated.

In another example, a user may be reviewing both a word processingdocument and spreadsheet on a personal computer, which utilizes side byside screen implementation. One of the two documents, either the wordprocessing document or the spreadsheet, may be open and expanded to fillor take up the entire screen. When a keystroke is received and verified,through API call methods, an anchor point program 66 may resize theexisting window containing the spreadsheet to the left half of thescreen and the application document with the application correspondingto an anchor point appearing on the right half.

FIG. 5 illustrates internal and external components of a device computer52 and server computer 54 in which illustrative embodiments may beimplemented. In FIG. 5, a device computer 52 and a server computer 54include respective sets of internal components 800 a, 800 b and externalcomponents 900 a, 900 b. Each of the sets of internal components 800 a,800 b includes one or more processors 820, one or more computer-readableRAMs 822 and one or more computer-readable ROMs 824 on one or more buses826, and one or more operating systems 828 and one or morecomputer-readable tangible storage devices 830. The one or moreoperating systems 828 and anchor point program 66 are stored on one ormore of the computer-readable tangible storage devices 830 for executionby one or more of the processors 820 via one or more of the RAMs 822(which typically include cache memory). In the embodiment illustrated inFIG. 5, each of the computer-readable tangible storage devices 830 is amagnetic disk storage device of an internal hard drive. Alternatively,each of the computer-readable tangible storage devices 830 is asemiconductor storage device such as ROM 824, EPROM, flash memory or anyother computer-readable tangible storage device that can store acomputer program and digital information.

Each set of internal components 800 a, 800 b also includes a R/W driveor interface 832 to read from and write to one or more portablecomputer-readable tangible storage devices 936 such as a CD-ROM, DVD,memory stick, magnetic tape, magnetic disk, optical disk orsemiconductor storage device. Anchor point program 66 can be stored onone or more of the portable computer-readable tangible storage devices936, read via R/W drive or interface 832 and loaded into hard drive 830.

Each set of internal components 800 a, 800 b also includes a networkadapter or interface 836 such as a TCP/IP adapter card. Anchor pointprogram 66 can be downloaded to the device computer 52 and servercomputer 54 from an external computer via a network (for example, theInternet, a local area network or other, wide area network) and networkadapter or interface 836. From the network adapter or interface 836,anchor point program 66 is loaded into hard drive 830. Anchor pointprogram 66 can be downloaded to the server computer 54 from an externalcomputer via a network (for example, the Internet, a local area networkor other, wide area network) and network adapter or interface 836. Fromthe network adapter or interface 836, anchor point program 66 is loadedinto hard drive 830. The network may comprise copper wires, opticalfibers, wireless transmission, routers, firewalls, switches, gatewaycomputers and/or edge servers.

Each of the sets of external components 900 a, 900 b includes a computerdisplay monitor 920, a keyboard 930, and a computer mouse 934. Each ofthe sets of internal components 800 a, 800 b also includes devicedrivers 840 to interface to computer display monitor 920, keyboard 930and computer mouse 934. The device drivers 840, R/W drive or interface832 and network adapter or interface 836 comprise hardware and software(stored in storage device 830 and/or ROM 824).

Anchor point program 66 can be written in various programming languagesincluding low-level, high-level, object-oriented or non object-orientedlanguages. Alternatively, the functions of an anchor point program 66can be implemented in whole or in part by computer circuits and otherhardware (not shown).

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instructions by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

What is claimed is:
 1. A computer program product for navigating withinmultiple documents which are open in multiple open programs on acomputer, the computer comprising at least one processor, one or morememories, one or more computer readable storage media, the computerprogram product comprising a computer readable storage medium havingprogram instructions embodied therewith, the program instructionsexecutable by the computer to perform a method comprising: receiving, bya controlling application of the computer, temporary anchor points setby a user in the multiple documents open in the multiple open programswithout additional user interaction with the programs; receiving, by thecontrolling application of the computer, a request from the usercomprising a keystroke; identifying, by the controlling application ofthe computer, the keystroke, an association of the keystroke with anopen program of the multiple open programs, and a temporary anchor pointpreviously set by the user within a document open in the open programwhich was associated with the keystroke; and sending, by the controllingapplication of the computer, a request to the open program which isassociated with the keystroke, to cause the open program to move acursor to the temporary anchor point within the open document in theopen program.
 2. The computer program product of claim 1, wherein thecontrolling application is in communication with the multiple openprograms via an application program interface and the request sent tothe identified open program is sent via the application programinterface.
 3. The computer program product of claim 1, wherein thekeystroke is a retrieval keystroke.
 4. The computer program product ofclaim 3, wherein the retrieval keystroke is selected from a groupconsisting of: a combination of at least two keys and a combination ofgestures by a user.
 5. The computer program product of claim 1, whereinthe program instructions of identifying, by the controlling applicationof the computer, the keystroke, comprises the comparing, by thecontrolling application of the computer, the keystroke received from theuser to stored keystrokes associated with the user.
 6. The computerprogram product of claim 1, wherein the temporary anchor point isestablished by the program instructions of: receiving, by thecontrolling application of the computer, a set keystroke within thedocument from the user; verifying, by the controlling application of thecomputer, verifying the set keystroke; saving, by the controllingapplication, a cursor location within the document as a temporary anchorpoint to which the user can travel to by providing the set keystroke. 7.The computer program product of claim 6, wherein the set keystroke isselected from a group consisting of: a combination of at least two keysand a combination of gestures by a user.
 8. The computer program productof claim 6, wherein the program instructions of verifying, by thecontrolling application of the computer, the set keystroke, comprisescomparing, by the controlling application of the computer, the setkeystroke received from the user to a stored keystroke associated withthe user.
 9. The computer program product of claim 1, wherein thetemporary anchor point is removed from the document when the controllingapplication is closed.
 10. The computer program product of claim 1,wherein the document is selected from a group consisting of:spreadsheets, word processing documents, and binary documents.
 11. Acomputer system for navigating within multiple documents which are openin multiple open programs on a computer comprising at least oneprocessor, one or more memories, one or more computer readable storagemedia having program instructions executable by the computer to performthe program instructions comprising: receiving, by a controllingapplication of the computer, temporary anchor points set by a user inthe multiple documents open in the multiple open programs withoutadditional user interaction with the programs; receiving, by thecontrolling application of the computer, a request from the usercomprising a keystroke; identifying, by the controlling application ofthe computer, the keystroke, an association of the keystroke with anopen program of the multiple open programs, and a temporary anchor pointpreviously set by the user within a document open in the open programwhich was associated with the keystroke; and sending, by the controllingapplication of the computer, a request to the open program which isassociated with the keystroke, to cause the open program to move acursor to the temporary anchor point within the open document in theopen program.
 12. The computer system of claim 11, wherein thecontrolling application is in communication with the multiple openprograms via an application program interface and the request sent tothe identified open program is sent via the application programinterface.
 13. The computer system of claim 11, wherein the keystroke isa retrieval keystroke.
 14. The computer system of claim 13, wherein theretrieval keystroke is selected from a group consisting of: acombination of at least two keys and a combination of gestures by auser.
 15. The computer system of claim 11, wherein the programinstructions of identifying, by the controlling application of thecomputer, the keystroke, comprises the comparing, by the controllingapplication of the computer, the keystroke received from the user tostored keystrokes associated with the user.
 16. The computer system ofclaim 11, wherein the temporary anchor point is established by theprogram instructions of: receiving, by the controlling application ofthe computer, a set keystroke within the document from the user;verifying, by the controlling application of the computer, verifying theset keystroke; saving, by the controlling application, a cursor locationwithin the document as a temporary anchor point to which the user cantravel to by providing the set keystroke.
 17. The computer system ofclaim 16, wherein the set keystroke is selected from a group consistingof: a combination of at least two keys and a combination of gestures bya user.
 18. The computer system of claim 16, wherein the programinstructions of verifying, by the controlling application of thecomputer, the set keystroke, comprises comparing, by the controllingapplication of the computer, the set keystroke received from the user toa stored keystroke associated with the user.
 19. The computer system ofclaim 11, wherein the temporary anchor point is removed from thedocument when the controlling application is closed.